<?php
class View_Product{
	/**
	 * Метод выводит список товаров в админке
	 * 
	 * @param array $arrProducts - массив товаров
	 */
	public static function showAdminList(array &$arrProducts) {
		echo '<div class="admin-list">';
			if(empty($arrProducts)) echo 'Товаров нет';
			foreach($arrProducts as $arrProduct) {
				echo '<div class="item">';
					echo '<a href="' . W_ABSPATH . 'products/' . $arrProduct['url'] . '" target="_blank">' . $arrProduct['product_name'] . '</a>';
					echo ' (<a href="' . W_ADMIN . 'products/edit/' . $arrProduct['ID_product'] . '">Редактировать</a>,';
					echo ' <a href="' . W_ADMIN . 'products/gallery/' . $arrProduct['ID_product'] . '">Галлерея</a>)';
				echo '</div>';
			}
		echo '</div>';
	}
	
	/**
	 * Выводит форму добавления/редактирвоания товара
	 *
	 * @param Product $objProduct
	 */
	public static function showEditForm(Product $objProduct) {
		$objForm = new View_Form(array(
				'id' => 'product-edit-form',
				'left-width' => 140
		), $objProduct);
		
		if($objProduct->id) echo '<div><a href="' . W_ADMIN . 'products/gallery/' . $objProduct->id . '">Редактировать фото</a></div>';
		
		$objForm->show();
			$objForm->textField(array('name' => 'product_name', 'text' => 'Название'));
			$objForm->textArea(array('name' => 'description', 'text' => 'Описание'));
			$objForm->textField(array('name' => 'url', 'text' => 'URL'));
			$objForm->select(array('name' => 'ID_category', 'options' => $objProduct->getCategoriesAvailableForLink(), 'chooseText' => 'Без категории', 'text' => 'Категория'));
			
			$objForm->textField(array('name' => 'foreign_price', 'text' => 'Цена Петровича'));
			$objForm->textField(array('name' => 'foreign_gold_price', 'text' => 'Цена gold Петровича'));
			$objForm->textField(array('name' => 'our_price', 'text' => 'Наша цена'));
			$objForm->textField(array('name' => 'client_price', 'text' => 'Цена клиента'));
			$objForm->textField(array('name' => 'meta_keywords', 'text' => 'Meta keywords'));
			$objForm->textField(array('name' => 'meta_description', 'text' => 'Meta description'));
			
			$objForm->hiddenField(array('name' => 'ID_product'));
			$objForm->submit();
		$objForm->close();
	}
	
	/**
	 * Выводит страницу товара
	 * 
	 * @param Product $objProduct - объект товара
	 * @param array $arrPhotosIds - массив фотографий текущего товара
	 */
	public static function showProductPage(Product $objProduct, array &$arrPhotosIds) {
		//$arrProductProperties = ProductProperty::getProductProperties($objProduct->id);
		$objForm = new View_Form();
		echo '<div class="product-top">';
			echo '<div class="product-images">';
				echo '<div class="main-image">';
					echo '<a href="' . View_Poster::getPath($objProduct->getField('ID_photo'), 'original') . '" data-lightbox="product-gallery" title="' . $objProduct->getField('product_name') . '">';
						echo '<img src="' . View_Poster::getPath($objProduct->getField('ID_photo'), '200x200') . '" alt="' . $objProduct->getField('product_name') . '">';
					echo '</a>';
				echo '</div>';
				echo '<div class="add-images">';
					foreach($arrPhotosIds as $arrPhotoId) {
						if($arrPhotoId == $objProduct->getField('ID_photo')) continue;
						echo '<a href="' . View_Poster::getPath($arrPhotoId, 'original') . '" data-lightbox="product-gallery" title="' . $objProduct->getField('product_name') . '">';
							echo '<img src="' .  View_Poster::getPath($arrPhotoId, '40x40') . '">';
						echo '</a>';
					}
				echo '</div>';
			echo '</div>';
			
			echo '<div class="product-actions">';
				echo '<div class="price">Цена: <span>' . sprintf("%01.2f", $objProduct->getField('client_price')) . '</span> руб.</div>';
				echo '<div class="amount">';
					echo 'Количество: <a href="#" class="b-bcg">&ndash;</a><a href="#" class="b-bcg">+</a>';
					echo '<input type="text">';
				echo '</div>';
				echo '<div class="add-in-cart b-bcg">Добавить в корзину</div>';
			echo '</div>';
			
			echo '<div class="clear"></div>';
		echo '</div>';
		
		
		echo '<div class="product-info">';
			echo '<div class="product-desc sh-block">' . $objProduct->getField('description') . '</div>';
			
// 			if(!empty($arrProductProperties)) {
// 				echo '<table class="product-properties">';
// 				foreach($arrProductProperties as $arrProductProperty) {
// 					echo '<tr>';
// 					echo '<td class="prop-name">' . $arrProductProperty['property_name'] . '</td>';
// 					echo '<td class="prop-value">' . $arrProductProperty['value_name'] . '</td>';
// 					echo '</tr>';
// 				}
// 				echo '</table>';
// 			}
			
// 			echo '<div class="all-sizes fr">';
// 				$objForm->select(array('text' => 'Размер', 'options' => $arrSizes));
// 				echo '<a href="#" class="buy green-btn" data-product-id="' . $objProduct->id . '">Купить</a>';
// 			echo '</div>';
		echo '</div>';
		echo '<div class="clear"></div>';
		
		if(DOMAIN == 'wearland.ru') {
			echo '<div class="social-widgets">';
				echo '<div id="vk-like"></div>';
				echo '<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript" charset="windows-1251"></script>';
				echo '<script type="text/javascript">VK.init({apiId: 3958868, onlyWidgets: true});</script>';
				echo '<script type="text/javascript">VK.Widgets.Like("vk-like", {type: "button", height: 24, pageTitle: "' . $objProduct->getField('product_name') . '", pageDescription:"' .  'Купить ' . $objProduct->getField('product_name') . ', отзывы, цены и фотографии товара", page_id: ' . $objProduct->id . '});</script>';
			echo '</div>';
		}
	}
	
	public static function showProductsList($arrProducts, $sex = '') {
		if(empty($arrProducts)) return false;
		
		echo '<div class="p-list">';
			foreach($arrProducts as $arrProduct) {
				echo '<div class="p-item sh-block">';
					echo '<div class="p-photo">';
						echo '<img src="' . View_Poster::getPath($arrProduct['ID_photo'], '230x230')  . '">';
					echo '</div>';
					echo '<a class="p-name" href="' . Product::getProductUrl($arrProduct) . '">' . $arrProduct['product_name'] . '</a>';
					echo '<div class="p-price b-bcg">' . sprintf("%01.2f", $arrProduct['client_price']) . ' руб.</div>';
					echo '<div class="cart-block">';
					echo '</div>';
				echo '</div>';
			}
			echo '<div class="clear"></div>';
		echo '</div>';
	}
	
	/**
	 * Выводит страницу активов для администратора
	 * 
	 * @param array $arrProducts - массив продуктов
	 */
	public static function showAdminACtiveList(array $arrProducts) {
		if(empty($arrProducts)) echo '<h2>Активы отсутствуют</h2>';
		foreach($arrProducts as $arrProduct) {
			echo '<h2>' . $arrProduct['product_name'] . ' (' . $arrProduct['size_name'] .') - ' . $arrProduct['count'] . '</h2>';
		}
	}
	
	/**
	 * Редактирование галлереи
	 * 
	 * @param Product $objProduct - объект продукта
	 */
	public static function showGalleryForm(Product $objProduct) {
		$objForm = new View_Form(array(
			'id' => 'product-edit-form',
			'left-width' => 100,
			'multipart' => true
		), $objProduct);
		
		$objForm->show();

			echo '<input id="images-upload" type="file" name="file[]" multiple />';
			
		$objForm->submit(array('class' => 'green-btn', 'value' => 'Сохранить'));
		$objForm->close();
	}
	
	/**
	 * Отображаем фотки товара
	 * 
	 * @param array $arrPhotos - массив фоток
	 * @param int $photoMainId - ID главной фотки
	 */
	public static function showProductPhotos(array $arrPhotos, $photoMainId) {
		echo '<div class="product-photos">';
			if(empty($arrPhotos)) echo 'Фотографии отсутствуют.';
			foreach ($arrPhotos as $photoId) {
				echo '<div class="product-photo photo-contain" data-photo-id="' . $photoId . '">';
					echo '<img src="' . View_Poster::getPath($photoId, '170x170') . '"' . ($photoMainId == $photoId ? ' class="main"' : null) . '>';
					echo '<a href="#" class="main-photo">Сделать главной</a><br>';
					echo '<a href="#" class="delete-photo">Удалить</a>';
				echo '</div>';
			}
			echo '<div class="clear"></div>';
		echo '</div>';
	}
	
	/**
	 * Выводит блок для редактирования свойст товара
	 * 
	 * @param int idProduct - id продукта
	 * @param ViewForm $objForm - объект формы, в рамках которой осуществляется редактирование
	 */
	public static function showProductPropertiesForEdit($idProduct, View_Form $objForm) {
		$arrProperties = ProductProperty::getAllProperties();
		$arrProductProperties = Service_ArrayConverter::getColumn(ProductProperty::getProductProperties($idProduct), 'ID_product_property_value');

		echo '<div class="product-properties">';
			echo '<h2>Характеристики товара</h2>';
			foreach($arrProperties as $idProperty => $arrProperty) {
				echo '<div class="item">';
					echo '<h3>' .  $arrProperty[0]['property_name'] . '</h3>';
					echo '<div class="prop-values">';
						foreach($arrProperty as $arrPropertyValue) {
							$objForm->checkbox(array(
									'name' => 'prod_prop' . $arrPropertyValue['ID_product_property_value'] ,
									'id' => 'ch' . $arrPropertyValue['ID_product_property_value'], 
									'label' => $arrPropertyValue['value_name'],
									'is_checked' => in_array($arrPropertyValue['ID_product_property_value'], $arrProductProperties) ? true : false
							));
						}
					echo '</div>';
				echo '</div>';
			}
			echo '<div class="clear"></div>';
		echo '</div>';
	}
}